package demo;

import demo.dishes.impl.FrenchPizza;
import demo.dishes.impl.GongBaoJiDing;
import demo.dishes.impl.Kebab;
import demo.dishes.impl.YuXiangRouSi;

/**
 * 命令模式
 * 命令模式是一种行为设计模式，它可将请求转换为一个包含与请求相关的所有信息的独立对象。
 * 该转换让你能根据不同的请求将方法参数化，延迟请求执行或将其放入队列中，且能实现可撤销操作。
 * @author ZhouWeiBo
 * @create 2022/6/7
 */
public class App {
    public static void main(String[] args) {
        /*  */
        System.out.println("客人：”小二，点菜！“");
        XiaoEr xiaoEr = new XiaoEr();
        xiaoEr.bookingDishes(new FrenchPizza());
        xiaoEr.bookingDishes(new GongBaoJiDing());
        xiaoEr.bookingDishes(new YuXiangRouSi());
        xiaoEr.bookingDishes(new Kebab());
        System.out.println("客人：”点完了，去上菜吧！“");
        xiaoEr.complete();
    }
}
